home *** CD-ROM | disk | FTP | other *** search
- MODULE tsys;
- __IMP_SWITCHES__
- #ifdef HM2
- #ifdef __LONG_WHOLE__
- (*$!i+: Modul muss mit $i- uebersetzt werden! *)
- (*$!w+: Modul muss mit $w- uebersetzt werden! *)
- #else
- (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
- (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
- #endif
- #endif
- (* Test- und Anwendungsbeispiel fuer Modul 'sys'.
- *
- * 20-Aug-93, hk
- *)
-
- IMPORT e;
-
- FROM PORTAB IMPORT
- (* TYPE *) SIGNEDLONG;
-
- FROM sys IMPORT
- (* TYPE *) PConfVal, SConfVal, UtsnameRec,
- (* PROC *) pathconf, sysconf, time, uname;
-
- FROM cstr IMPORT
- (* PROC *) strerror;
-
- FROM lib IMPORT
- (* PROC *)ltoa;
-
- FROM InOut IMPORT
- (* PROC *) WriteString, WriteInt, WriteCard, WriteLn, Write, Read;
-
- (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
-
- CONST
- ERROR = LIC(-1);
-
- VAR
- limit : SIGNEDLONG;
- valStr : ARRAY [0..40] OF CHAR;
- ch : CHAR;
- res : INTEGER;
- uts : UtsnameRec;
-
- (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
-
- PROCEDURE TestVal ((* EIN/ -- *) proc : ARRAY OF CHAR;
- (* EIN/ -- *) limit : SIGNEDLONG );
- BEGIN
- WriteString(proc);
- IF limit = ERROR THEN
- IF e.errno <> 0 THEN
- WriteString("**failed**:: ");
- strerror(e.errno, valStr);
- WriteString(valStr);
- e.errno := 0;
- ELSE
- WriteString("nicht ermittelbar");
- END;
- ELSE
- ltoa(limit, valStr, 10);
- WriteString(valStr);
- END;
- WriteLn;
- END TestVal;
-
- PROCEDURE TestBool ((* EIN/ -- *) proc : ARRAY OF CHAR;
- (* EIN/ -- *) limit : SIGNEDLONG;
- (* EIN/ -- *) yes : ARRAY OF CHAR;
- (* EIN/ -- *) no : ARRAY OF CHAR );
- BEGIN
- WriteString(proc);
- IF limit = ERROR THEN
- IF e.errno <> 0 THEN
- WriteString("**failed**:: ");
- strerror(e.errno, valStr);
- WriteString(valStr);
- e.errno := 0;
- ELSE
- WriteString(no);
- END;
- ELSE
- WriteString(yes);
- END;
- WriteLn;
- END TestBool;
-
- (*===========================================================================*)
-
- BEGIN
- res := uname(uts);
- WITH uts DO
- WriteString("sysname : "); WriteString(sysname); WriteLn;
- WriteString("nodename : "); WriteString(nodename); WriteLn;
- WriteString("release : "); WriteString(release); WriteLn;
- WriteString("version : "); WriteString(version); WriteLn;
- WriteString("machine : "); WriteString(machine); WriteLn;
- END;
- WriteLn;
-
- e.errno := 0;
- TestVal("sysconf(_SC_ARG_MAX) : ", sysconf(scArgMax));
-
- TestVal("sysconf(_SC_OPEN_MAX) : ", sysconf(scOpenMax));
-
- TestVal("sysconf(_SC_CHILD_MAX) : ", sysconf(scChildMax));
-
- TestVal("sysconf(_SC_CLK_TCK) : ", sysconf(scClkTck));
-
- TestVal("sysconf(_SC_VERSION) : ", sysconf(scVersion));
-
- TestBool("sysconf(_SC_JOB_CONTROL) : ", sysconf(scJobControl),
- "wird unterstützt", "wird nicht unterstützt");
-
- TestBool("sysconf(_SC_SAVED_IDS) : ", sysconf(scSavedIds),
- "wird unterstützt", "wird nicht unterstützt");
-
- limit := sysconf(scNGroupsMax);
- ltoa(limit, valStr, 10);
- TestBool("sysconf(_SC_NGROUPS_MAX) : ", limit, valStr,
- "wird nicht unterstützt");
- WriteLn;
-
-
- TestVal('pathconf(".", _PC_LINK_MAX) : ', pathconf(".", pcLinkMax));
-
- TestVal('pathconf(".", _PC_PATH_MAX) : ', pathconf(".", pcPathMax));
-
- TestVal('pathconf(".", _PC_NAME_MAX) : ', pathconf(".", pcNameMax));
-
- TestVal('pathconf(".", _PC_PIPE_BUF) : ', pathconf(".", pcPipeBuf));
-
- TestVal('pathconf("/dev/tty", _PC_VDISABLE) : ',
- pathconf("/dev/tty", pcVdisable));
-
- TestVal('pathconf("/dev/tty", _PC_MAX_CANON) : ',
- pathconf("/dev/tty", pcMaxCanon));
-
- TestVal('pathconf("/dev/tty", _PC_MAX_INPUT) : ',
- pathconf("/dev/tty", pcMaxInput));
-
- limit := pathconf(".", pcNoTrunc);
- TestBool('pathconf(".", _PC_NO_TRUNC) : ', limit,
- "Dateinamen werden nicht gekuerzt","Dateinamen werden gekuerzt");
-
- limit := pathconf(".", pcChownRestricted);
- TestBool('pathconf(".", _PC_CHOWN_RESTRICTED) : ', limit,"ja", "nein");
-
- Read(ch);
- END tsys.
-